In what follows, I am publicly presenting for the first time the key ideas of a project I have been developing and using for myself for over five years now. It is my take on a combined note-taking, content-management, and archival system.
Its vision is to extend a user’s memory. It allows for—and is optimized for—intuitive retrieval, based on the idea that how things are stored mimics the user’s existing mental model: how things relate to one another, and how relevant they are to the user.

The simple data model. Any of the related Items of a focused Item can become a focused Item itself, from which we then contemplate further related Items.
The first big idea is the system’s simple data model. There are very few basic categories: We have Items and Associations, which are unidirectional Relations between Items. Items can represent literally anything—or any thing. What a thing is is up to the user, but it should represent a single thing of interest to the user. An item’s basic usable property is that it has a text field that lets one add and update a description (an arbitrary text describing the Item). It furthermore has a title, to represent names—proper and general ones.
Relations to other Items allow one to form (and mimic) Associations. Whenever you remember a thing, it usually conjures up related concepts. If you have a pet and mention its name to another person, this might conjure up an anecdote in which other people you know play a role. Both your pet (via its name) and those other people (via their names) can be represented as Items and related Items in the model of the system.
But at any given moment, you have one Item in focus, and the other ones are associated with that focused item. You might concentrate on your pet, or on the anecdote about the pet, or on the aunt who is involved in that anecdote. When you remember that aunt, other associations—maybe to other people—might crop up. At any given moment, though—to repeat—a single thing is focal. In the system, this is expressed by an Item being ‘selected.’
Since Relations are modeled explicitly,[1] this allows for adding metadata of various sorts to those Relations. Concretely, in the system, there is an Annotation property. It lets you express, for example, the following. Let’s say you had a pet, Doggo, who was your first dog and your aunt Emma’s favorite animal ever. You can annotate both, and when you yourself are ‘focused’ (as an Item), it shows Doggo as an Association with the former annotation; when your aunt is ‘focused’ (as an Item), it shows Doggo with the latter annotation.
The fact that Items are related to Items and that these Relations carry further properties makes this different from hyperlinked hypertexts, where text strings can (merely) point to other resources, but the meaning of those relations is undocumented.
The facts that anything can be related to anything, that items are in their most basic form “named descriptions,” and that items are related to other items make this system basically a digital Zettelkasten, an organization system attributed to Niklas Luhmann. No surprise, since I have striven to take ideas described in _How to Take Smart Notes_[2] as well as _How to Build a Second Brain_[3] into account while shaping the system into its present form.
Note how this basic model does not prescribe a specific nature or granularity of things. As I said, an Item can be really any “thing,” including processes—for example, “Cooking.” No differentiation into different categories takes place that would make the system treat any Item differently from any other. In the same vein, all Relations are of a single “type.” That is, there are no attempts to model ‘is-a’ relationships or to model hierarchies. Relationships are generic and unidirectional. Bidirectional relationships between two Items consist of two separate relationships, one in each direction.
This model is maximally flexible, but of course requires that interaction with the system’s content take place in very uniform ways. The system is very expressive and very limited in its expressivity at the same time. Cases in point:
-
You can represent before/after relationships, but must do so on a case-by-case basis, as there is nothing that can find instances of similar relationships.
-
You can express two layers in a hierarchy, and by selecting an associated Item, another two layers; but you cannot represent a tree-like hierarchy, as the data is modeled as a directed graph (cycles allowed).
All the tradeoffs taken support the simple fact that in conscious thought, things conjure up associations to other things, which in turn conjure up associations to other things.
In this, the system’s take is epistemological rather than ontological, if you will. Rather than aiming to capture things as they are, the goal is to capture things as they are—for the user.
As far as retrieval is concerned, things are structured so that text search is generally a title search (augmented by searchable extra words the user can add) rather than a content search. This works with the idea in mind that whatever is stored in the system has been put there by the same user who is querying it, and that user maintains a relatively stable mental model of what to call things over time.[4] In addition, search works across all Items globally, as well as for Items related to other Items—or, as we might say, over Items in the context of another Item. In any case, whenever an Item is selected, it gets re-ranked, and Items are by default ordered by last selected. This way, we model that more recent things are treated as more relevant.
The ability to select arbitrary Items and then search for further Items related to them, plus the fact that recent items appear on top, facilitates discovery. The Item to select has to be searched first—that is clear. And here we have said we don’t prescribe any specific granularity. So there is no navigation through a tree hierarchy or anything similar. When a user thinks ‘Dog’ is an important category, then this is an Item. When the user is knowledgeable about dogs and thinks ‘Chihuahua’ is a category worth having, then that is an Item. Whatever is a relevant category to the user is an Item.
All in all, with the system working under the metaphor of a second, or extended or augmented, brain, search mimics the behaviour of things “popping into one’s head” (direct search by familiar terms) as well as things being recalled “off the top of my head” (automatic ranking).
Items can be related to other Items and are, except in a global view where all Items are shown, always displayed in relation to a selected (or focused) Item. There is no hierarchical relationship, though, and one Item being shown in the context of a selected Item, while it can express such a relationship, does not imply any sort of ‘container’ or ‘part-whole’ relationship. This also means that any Item can be related to many other Items, and as such can appear in the context of many other Items. Given that no hierarchy is being modeled, Items as contexts behave a little more like tags than like folders.
Often we want to search for specific material on given topics—say, photos from a wedding day, or photos in which we appear with work colleagues. In our system, this is achieved by relating any inserted photo (Items can have files, but max 1 per Item) to the Photos category (Item) as well as to the Wedding Day category, or to the Workplace category (for example).[5] The system then allows further filtering of searches by intersections of categories, as defined by the currently selected Item plus additional secondary Items. In such a case, only Items related to all selected categories are included in the search results. We can also invert this logic and include only Items that are related to the selected Item but are not related to any of a given list of secondary Items.
These features round out our ability to perform truly semantic searches, given that things entered into the system actually mean something to the user, and that the names given to Items reflect that meaning.
One last thing: I should probably explain the Rhizome name. Rhizome designates the root stem of a plant that runs underground and sends out shoots in all directions. French philosophers Deleuze and Guattari use this as one of their central metaphors to express, essentially, a network—not a hierarchy. During my studies, more precisely during the first philosophy course I ever attended, I briefly came into contact with their philosophy and needed to hand in an essay to pass the course. I titled it—rather snarkily—“The Man Who Doesn’t Like Trees” (translated from German). I honestly can’t say any more about their philosophy at this point. A couple of years ago I bought the text A Thousand Plateaus, which contained the passage my essay had been about. I found its style so offensive (probably due to its many references that no longer make any sense[6]), however, that I sent it straight back.
In any case, it is nice to be able to recall things I have stored in a system. But where the system really shines is in being able to recall associations made. Making comparisons and analogies between different yet similar things is one of our truly remarkable capabilities. And each person has a unique set of experiences and draws from a unique set of influences. No two people have read the exact same books, for instance.[7] In rhizomatic fashion, our system helps recall a vast stock of already-made connections and synthesise from them, by emphasising the connections between items while refraining from imposing a structure on this network.
You can find the project repository here on GitHub.
Rhizome, in aiming to extend a single user’s capabilities, is very much in the spirit of the ‘personal’ computer. An outgrowth of this project is Personalist, which places much more focus on the role a person’s thoughts play in the grander scheme of society. See Personalist - An integrated universe of personal encyclopedias [Whitepaper] (link).
Footnotes
On this, see my article Relations All the Way Down - link.
By Söhnke Ahrens.
By Tiago Forte.
Note also that this simple title search is particularly effective here given that the search space is content from a single user, not from a large number of users.
Since there is no hierarchy, this will then enable you to search for Photos and then filter by Workplace or Wedding Day as well as the other way around, focus on Workplace or Wedding Day and then filter for Photos.
A defining feature of Continental Philosophy.
A personality seems in some sense a synthesis of all those influences.